﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Draco.OWF.RT;
using System.Collections;
using Draco.OWF.Exceptions;
using Draco.OWF.DataBinding;
using System.Drawing;
using System.Xml;

namespace Draco.OWF
{
    public interface IActivity
    {
        /// <summary>
        /// Get or set Id
        /// </summary>
        String Id { get; set; }
        /// <summary>
        /// Get or set Name
        /// </summary>
        String Name { get; set; }
        /// <summary>
        /// Get or set DisplayName
        /// </summary>
        String DisplayName { get; set; }
        String Description { get; set; }
        IBindingDataItemCollection InputParameters { get; }
        IBindingDataItemCollection OutputParameters { get; }
        Stack<ActivityRuntimeException> Exceptions { get; }

        /// <summary>
        /// Get ActivityType
        /// </summary>
        String ActivityType { get; }
        ITask CreateActivityInstance();
        IActivityRender Render{ get; }
        void SerializeConfiguration(XmlElement parent);
        void DeserializeConfiguration(XmlElement parent);
    }

    public interface IActivityRender
    {
        double X { get; set; }
        double Y { get; set; }
        int Z_Index { get; set; }
        Image Icon { get; set; }
        Font Font { get; set; }
        Color Font_Color { get; set; }
    }
}
